<?php

/**
 * 培训控制器
 * @author yanghao <yh38615890@sina.cn>
 * @date 07-04-12
 * @copyright (c) gandianli
 */

namespace app\api\controller;

use app\api\Base;
use think\Config;
use think\Db;
use think\exception\HttpException;
use think\Session;
use com\gdl\newagk\dataobject\adminlogin\AdminloginRequestDTO;
use com\gdl\newagk\interfaces\AdminloginServiceClient;

class AdminLogin extends Base
{

	public function login(){ 

		$username = $this->request->param('userName') ? $this->request->param('userName') : '';
		$password = $this->request->param('passWord') ? $this->request->param('passWord') : '';
		$code = $this->request->param('code') ? $this->request->param('code') : '';
		
            // 提交
            if (empty($username) || empty($password) || empty($code)) {
				$data = ['msg'=>'缺少必要参数','code'=>'400','data'=>[]];
				return json_encode($data);
            }
			/*if(Session::get('login_code')!=$code){
				$data = ['msg'=>'验证码输入错误，请重新输入','code'=>'400','data'=>[]];
				return json_encode($data);
			}*/
			
            try {
			\ApiClient::init(Config::get('api.appid'), Config::get('api.secret'), 30, array('gdlCloudSdk'));
            $api = new AdminloginServiceClient(NULL);
            \ApiClient::build($api);
            $engprojectDo = new AdminloginRequestDTO();
            $engprojectDo->username = $username;
			$engprojectDo->password = $password;
            $result = $api->login($engprojectDo);
	
			if($result->code){
				$data = ['msg'=>'登录成功','code'=>'200','data'=>$result->data[0]];
			} else {
				$data = ['msg'=>$result->message,'code'=>'400','data'=>[]];
			}
        } catch (Exception $ex) {
            $data = ['msg'=>'登录失败','code'=>'400','data'=>[]];
        }
        return json_encode($data);
	}

	
	public function edit(){ 

		$adminUserId = $this->request->param('adminUserId') ? $this->request->param('adminUserId/d') : 0;
		$password = $this->request->param('passWord') ? $this->request->param('passWord') : '';
		$oldPassWord = $this->request->param('oldPassWord') ? $this->request->param('oldPassWord') : '';
		
            // 提交
            if (!$adminUserId || empty($password) || empty($oldPassWord)) {
				$data = ['msg'=>'缺少必要参数','code'=>'400','data'=>[]];
				return json_encode($data);
            }

            try {
			\ApiClient::init(Config::get('api.appid'), Config::get('api.secret'), 30, array('gdlCloudSdk'));
			$api = new AdminloginServiceClient(NULL);
			\ApiClient::build($api);
			$engprojectDo = new AdminloginRequestDTO();
			$engprojectDo->filename['adminUserId'] = $adminUserId;
			$engprojectDo->filename['password'] = $password;
			$engprojectDo->filename['oldPassWord'] = $oldPassWord;
			$result = $api->edit($engprojectDo);

			if($result->code){
				$data = ['msg'=>'修改成功','code'=>'200','data'=>$result->data[0]];
			} else {
				$data = ['msg'=>$result->message,'code'=>'400','data'=>[]];
			}
        } catch (Exception $ex) {
            $data = ['msg'=>'登录失败','code'=>'400','data'=>[]];
        }
        return json_encode($data);
	}
	//图片二维码
	public function getCode($num=4,$w=600,$h=200) {
		 $code = "";
		 //设置验证码字符集合
		$strs = '23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVW';

		for($i=0;$i<$num;$i++){
			$code .= $strs[mt_rand(0,strlen($strs)-1)];
		}			


		 //将生成的验证码写入session，备验证时用

		 Session::set('login_code', $code);
		ob_clean ();  
		 //创建图片，定义颜色值
		 header("Content-type: image/PNG");
		 $im = imagecreate($w, $h);
		 $black = imagecolorallocate($im, 0, 0, 0);
		 $gray = imagecolorallocate($im, 200, 200, 200);
		 $bgcolor = imagecolorallocate($im, 255, 255, 255);
		 

		 //填充背景
		 imagefill($im, 0, 0, $gray);
		 //画边框
		 imagerectangle($im, 0, 0, $w-1, $h-1, $black);
		 //随机绘制两条虚线，起干扰作用
		 $style = array ($black,$black,$black,$black,$black,
		 $gray,$gray,$gray,$gray,$gray
		 );

		 imagesetstyle($im, $style);
		 $y1 = rand(0, $h);
		 $y2 = rand(0, $h);
		 $y3 = rand(0, $h);
		 $y4 = rand(0, $h);
		 imageline($im, 0, $y1, $w, $y3, IMG_COLOR_STYLED);
		 imageline($im, 0, $y2, $w, $y4, IMG_COLOR_STYLED);
		 //在画布上随机生成大量黑点，起干扰作用;
		 for ($i = 0; $i < 80; $i++) {
		 imagesetpixel($im, rand(0, $w), rand(0, $h), $black);
		 }
		 
		 //将数字随机显示在画布上,字符的水平间距和位置都按一定波动范围随机生成
		 $strx = rand(3, 8);
		 for ($i = 0; $i < $num; $i++) {
		 $strpos = rand(1, 6);
		 imagestring($im, 5, $strx, $strpos, substr($code, $i, 1), $black);
		 $strx += rand(8, 12);
		 }
		 
		 imagepng($im);//输出图片
		 imagedestroy($im);//释放图片所占内存
	

	}
	

	

}
